package com.wande.dataplatform.filecollection.service;

import com.wande.common.mybatis.core.page.TableDataInfo;
import com.wande.dataplatform.filecollection.domain.bo.FileRecordQuery;
import com.wande.dataplatform.filecollection.domain.vo.FileRecordVo;

import java.util.List;
import java.util.Map;

/**
 * 文件记录服务接口
 *
 * @author wande
 */
public interface IFileRecordService {

    /**
     * 查询文件记录列表
     *
     * @param query 查询条件
     * @return 文件记录列表
     */
    TableDataInfo<FileRecordVo> listFileRecords(FileRecordQuery query);

    /**
     * 查询文件记录详情
     *
     * @param id 文件记录ID
     * @return 文件记录详情
     */
    FileRecordVo getFileRecordDetail(Long id);

    /**
     * 预览文件数据
     *
     * @param id 文件记录ID
     * @param limit 预览行数限制
     * @return 预览数据
     */
    Map<String, Object> previewFileData(Long id, Integer limit);

    /**
     * 下载原始文件
     *
     * @param id 文件记录ID
     * @return 文件下载URL
     */
    String downloadFile(Long id);

    /**
     * 获取文件采集统计
     *
     * @param query 查询条件
     * @return 统计数据
     */
    Map<String, Object> getFileStatistics(FileRecordQuery query);
}
